using System;
using System.Collections.Generic;
using System.Text;

namespace Impact.Infrastructure.Data
{
    /// <summary>
    /// minimum interface for all providers of persisting data
    /// </summary>
    /// <typeparam name="T">the type that will be persisted</typeparam>
    public interface IPersistenceProvider<T>
    {
        /// <summary>
        /// Retrieves the data from the data store as type T
        /// </summary>
        T LoadData();

        /// <summary>
        /// Saves the data in the store
        /// </summary>
        void SaveData(T data);
    }
}
